Safety system for integrated human/robotic environments

ABSTRACT

Systems and methods are provided for specifying safety rules for robotic devices. A computing device can determine information about any actors present within a predetermined area of an environment. The computing device can determine a safety classification for the predetermined area based on the information. The safety classification can include: a low safety classification if the information indicates zero actors are present within the predetermined area, a medium safety classification if the information indicates any actors are present within the predetermined area all are of a predetermined first type, and a high safety classification if the information indicates at least one actor present within the predetermined area is of a predetermined second type. After determining the safety classification for the predetermined area, the computing device can provide a safety rule for operating within the predetermined area to a robotic device operating in the environment.

BACKGROUND

One or more robots and/or other actors, such as human actors, can movethroughout a space, such as the interior of part or all of a buildingand/or its surrounding outdoor regions, to perform tasks and/orotherwise utilize the space together. One example of a building is awarehouse, which may be used for storage of goods by a variety ofdifferent types of commercial entities, including manufacturers,wholesalers, and transport businesses. Example stored goods may includeraw materials, parts or components, packing materials, and finishedproducts. In some cases, the warehouse may be equipped with loadingdocks to allow goods to be loaded onto and unloaded from delivery trucksor other types of vehicles. The warehouse may also use rows of palletracks to allow for storages of pallets, flat transport structures thatcontain stacks of boxes or other objects. Additionally, the warehousemay use machines or vehicles for lifting and moving goods or pallets ofgoods, such as cranes and forklifts. Human operators may be employed inthe warehouse to operate machines, vehicles, and other equipment. Insome cases, one or more of the machines or vehicles may be roboticdevices guided by computer control systems.

SUMMARY

In one aspect, a method is provided. A computing device determinespresence information and actor type information about any actors presentwithin a predetermined area of an environment using one or moreassociated sensors. The computing device determines a particular safetyclassification of the predetermined area based on at least the presenceand actor type information using the computing device, where theparticular safety classification includes: a low safety classificationif the presence and actor type information indicates zero actors arepresent within the predetermined area, a medium safety classification ifthe presence and actor type information indicates one or more actors arepresent within the predetermined area and that all of the one or moreactors are of a predetermined first type, and a high safetyclassification if the presence and actor type information indicates oneor more actors are present within the predetermined area and that atleast one actor of the one or more actors is of a predetermined secondtype. After determining the particular safety classification for thepredetermined area, the computing device provides a safety rule foroperating within the predetermined area to a robotic device operating inthe environment, where the safety rule corresponds to the particularsafety classification

In another aspect, a safety system is provided. The safety systemincludes a computing device. The computing device includes one or moreprocessors and data storage. The data storage includes at leastcomputer-executable instructions stored thereon that, when executed bythe one or more processors, cause the computing device to performfunctions. The functions include: determining presence information andactor type information about any actors present within a predeterminedarea of an environment using one or more sensors; determining aparticular safety classification of the predetermined area based on thepresence and actor type information, where the particular safetyclassification includes: a low safety classification if the presence andactor type information indicates zero actors are present within thepredetermined area, a medium safety classification if the presence andactor type information indicates one or more actors are present withinthe predetermined area and that all of the one or more actors are of apredetermined first type, and a high safety classification if thepresence and actor type information indicates one or more actors arepresent within the predetermined area and that at least one actor of theone or more actors is of a predetermined second type; and afterdetermining the particular safety classification for the predeterminedarea, providing a safety rule for operating within the predeterminedarea to a robotic device operating in the environment, where the safetyrule corresponds to the particular safety classification.

In another aspect, a non-transitory computer readable medium isprovided. The non-transitory computer readable medium has stored thereoninstructions, that when executed by one or more processors of acomputing device, cause the computing device to perform functions. Thefunctions include: determining presence information and actor typeinformation about any actors present within a predetermined area of anenvironment using one or more sensors; determining a particular safetyclassification of the predetermined area based on the presence and actortype information, where the particular safety classification includes: alow safety classification if the presence and actor type informationindicates zero actors are present within the predetermined area, amedium safety classification if the presence and actor type informationindicates one or more actors are present within the predetermined areaand that all of the one or more actors are of a predetermined firsttype, and a high safety classification if the presence and actor typeinformation indicates one or more actors are present within thepredetermined area and that at least one actor of the one or more actorsis of a predetermined second type; and after determining the particularsafety classification for the predetermined area, providing a safetyrule for operating within the predetermined area to a robotic deviceoperating in the environment, where the safety rule corresponds to theparticular safety classification.

In another aspect, an apparatus is provided. The apparatus includes:means for determining presence information and actor type informationabout any actors present within a predetermined area of an environmentusing one or more sensors; means for determining a particular safetyclassification of the predetermined area based on the presence and actortype information, where the particular safety classification includes: alow safety classification if the presence and actor type informationindicates zero actors are present within the predetermined area, amedium safety classification if the presence and actor type informationindicates one or more actors are present within the predetermined areaand that all of the one or more actors are of a predetermined firsttype, and a high safety classification if the presence and actor typeinformation indicates one or more actors are present within thepredetermined area and that at least one actor of the one or more actorsis of a predetermined second type; and means for, after determining theparticular safety classification for the predetermined area, providing asafety rule for operating within the predetermined area to a roboticdevice operating in the environment, where the safety rule correspondsto the particular safety classification.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description and the accompanying drawings.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 shows an environment, in accordance with an example embodiment.

FIG. 2 shows a scenario involving the environment of FIG. 1, inaccordance with an example embodiment.

FIG. 3A, FIG. 3B, FIG. 3C, FIG. 3D, FIG. 3E, FIG. 3F, FIG. 3G, and FIG.3H show another scenario involving the environment of FIG. 1, inaccordance with an example embodiment.

FIG. 4 shows another scenario involving the environment of FIG. 1, inaccordance with an example embodiment.

FIG. 5A shows example safety areas for human actors, in accordance withan example embodiment.

FIG. 5B shows example safety areas for robotic actors, in accordancewith an example embodiment.

FIG. 6A is a functional block diagram of an example computing device, inaccordance with an example embodiment.

FIG. 6B depicts a cloud-based server system, in accordance with anexample embodiment.

FIG. 7 is a flowchart of a method, in accordance with an exampleembodiment.

DETAILED DESCRIPTION

Overview

When robots and humans work side-by-side in, the robots can be certifiedfor safe use in an integrated human/robotic environment. For example,humans can work with robotic devices such as an automated guided vehicle(AGV) that can deliver items, such as parts or completed products,within indoor environments, such as warehouses, hospitals and/or datacenters. An example of a certifiable safety system for environmentswhere humans and robots work side-by-side can involve remote automaticswitching between safety modes for mobile robots.

The safety modes can include high, medium, and low safety modes. Forinstance, the safety system can instruct a robot to operate in a highsafety mode when in a high safety area, such as an area surrounding oneor more human actors, and perhaps other (robotic) actors. In the highsafety mode, the robot can move (much) slower than in a low safety modeand may also slow in advance of entering such the high safety area.While in the low safety mode, the robot can operate at a maximum safespeed to be as efficient as safely possible. As another example, thesafety system can instruct a robot to operate in a medium safety modewhen in a medium safety area, such as an area where human actors areabsent but includes one or more robotic actors. In the medium safetymode, the robot can move at a moderate speed between the relatively-slowspeed used in the high safety mode and the relatively-high speed used inthe low safety mode.

The safety system can include a safety-system server which can receiveglobal information about environment E1 (that is, information from anumber of sources throughout environment E1, and perhaps outsideenvironment E1) to dynamically change local safety regions ofenvironment E1, based on the received information. That is, thesafety-system server can receive information from human actors, roboticactors, and/or other devices, such as sensors, in mixed human/roboticenvironment E1. In some examples, the safety-system server, can receivelocation data for actors AC1, AC2 . . . operating in environment E1. Thelocation data can come from handheld device localization (using tablets,smart phones, and/or other mobile computing devices used in theenvironment), fixed sensors mounted to objects in the environment,sensors aboard robots, sensors aboard vehicles utilized by actors totravel within environment E1, and perhaps other sensors. In otherexamples, the safety-system server can receive other types ofinformation from a number of different types of sensors, such ascameras, light curtains, proximity sensors, infrared, RADAR, SONAR,Radio Frequency Identification (RFID) devices, and other kinds ofsensors.

Upon receiving the information from the actor(s) and/or device(s) inenvironment E1, the safety-system server can change local safety regionsby changing safety modes and/or safety rules within areas A1, A2, . . .An of environment E1. That is, the safety-system server can changesafety designations, such as safety modes and/or safety rules, to beused within areas of environment E1 and/or change safety designations,such as safety modes and/or safety rules for actors within environmentE1. A safety system for a mixed human/robotic environment E1 candetermine safety modes or classifications based on a verification of atype of an actor in E1, such as a human actor type, a robotic actortype, an unknown actor type, or some other type. The type of the actorcan depend on the identity of the actor; for example, a human employeeidentified as “Hannah” can have a human actor type, while a robotidentified as “Rob” can have a robotic actor type. Then, each actor canhave a device, such as a device with an RFID chip or other device withactor type and/or identification information, that can provide actortype and/or identification information for the actor on a periodicbasis, upon request from an external device (such as server), whenentering and/or exiting an area with environment E1, and/or based onsome other criteria.

Safety certification for obtaining location and other data used by thesafety system can involve verifying that the safety system has multiple,redundant communication paths for information, such as information aboutlocations within an environment that are safe to operate or parametersrelated to safe operation; e.g., a maximum traveling speed. Informationconveyed using one communication path of the safety system can then becross-checked by information conveyed over another communication path ofthe safety system. For example, a location of a robot R1 in environmentE1 can be determined using an on-board sensor OBS and communicated tothe safety-system server can be checked with location data from fixedlocation sensors FLS1, FLS2 . . . also operating in environment E1. Thenthe safety-system server can cross-check the location of robot R1 usingdata from on-board sensor OBS with data from fixed location sensorsFLS1, FLS2 . . . .

By providing a safety system as described herein that allows roboticdevices to operate at different rates based on different safety modes indifferent areas, the robotic devices can operate efficiently and safelywhile in a mixed human/robotic environment. The safety system can be aglobal system using one or more safety-system servers that dynamicallychange safety regions locally based on inputs from visual and othersensors, as discussed above. In some embodiments, such safety systemscan be certified by a regulatory agency or other entity to provide asecure environment for human actors in a mixed human/roboticenvironment.

Safety Systems for Environments with Robotic and Human Actors

FIG. 1 shows environment 100, in accordance with an example embodiment.Environment 100, which can be an indoor building like a warehouse or anopen expanse outdoors, is divided into 35 areas. The 35 areas includeareas 111-117 making up a northernmost row of areas in environment 100,areas 121-127 making a second-from-northernmost row of areas inenvironment 100, areas 131-137 making a middle row of areas inenvironment 100, areas 141-147 making a second-from-southernmost row ofareas in environment 100, and areas 151-157 making a southernmost row ofareas in environment 100.

An environment E1 where both robotic and human actors operate, such asenvironment 100, can be divided into N areas A₁, A₂ . . . A_(n), wherelocations within E1 can be specified in terms of the N areas. Some orall of the N areas can have a regular geometry and/or have the samesize/area; e.g., some or all of A₁, A₂ . . . A_(n) can be same-sizedsquares, rectangles, triangles, hexagons, circles. For example,environment 100 is divided into 35 same-sized squares. In some cases,the N areas in environment E1 do not overlap; e.g., the N areas cantessellate E1 as in the case of environment 100; while in other cases,some or all of the N areas overlap. Then, location data for actors AC1,AC2, in N can be related to areas A₁, A₂ . . . A_(n); for example,location data for actor AC3 at a location (x, y) within area A₅₄ canindicate that AC3 is within area A₅₄. In still other examples, E1 can bedivided into N_(v) volumes V₁, V₂ . . . V_(Nv) instead of into N areas.

FIG. 1 shows that environment 100 includes human actor (HA) 160 androbotic actor (RA) 170; in other examples, more or fewer human actorsand/or robotic actors can be present in environment 100 than shown inFIG. 1. Each actor 160, 170 is shown in FIGS. 1-4 outlined by a box thatincludes a representation of the actor's location, a cartoon of a personfor human actors, such as human actor 160, or a triangle for a roboticactor, such as robotic actor 170, and an symbol representing the actor'sdirection of travel. For example, human actor 160 in area 115 (thenorth-eastern corner of environment 100) has a westward pointing arrowindicating that human actor 160 is moving west. As another example,robotic actor 170 in area 112 has an octagon within its outline box toindicate robotic actor 170 has come to a stop.

FIG. 1 shows that environment 100 includes sensors 111 s-157 s uniformlydistributed throughout. Sensors 111 s-157 s can act as a grid of sensorsto provide information for a safety system. Each of areas 111-157 inenvironment 100 has a corresponding sensor; for example, FIG. 1 showsthat area 111 in the northwest corner of environment 100 has sensor 111s.

Sensor 111 s can include one or more presence sensors configured atleast to provide presence information about area 111. The presenceinformation can include information indicating whether or not one ormore actors are present (or are not present) within an area. The one ormore presence sensors can include, but are not limited to, motiondetectors, light curtains, proximity sensors, and/or cameras. Sensor 111s can include one or more identity sensors configured to provide actortype information about any actors present within area 111. The actortype information can include information about a role, type,classification, identity, and/or related information specific to anactor that can be used to identify and/or classify the actor. The one ormore identity sensors can include, but are not limited to, RFID readers,badge readers, cameras, light sensors, sound sensors (i.e.,microphones), ultrasonic sensors, and/or biometric sensors. Forinstance, each human and/or robotic actor in environment 100 may begiven a separate RFID device (e.g., an RFID tag, an RFID chip), andsensor 111 s can include a RFID reader. In some cases, RFID devices ofrobotic actors can be used to differentiate robot motion from humanmotion. In some embodiments, a size of area 111 can be based on a rangeof a RFID reader of sensor 111 s. In other cases, a size of area 111could be adjusted based on different types of robots or robotoperations.

In other embodiments, a camera can be used to identify features, such asfaces or identification numbers, of actors in area 111. The actor canalso be identified by the camera and detection of other visualindicators of identity; e.g., by classifying an actor based on differenttypes of movement, by lights and/or patterns of light carried by orotherwise associated with an actor. For example, a robotic actorassigned with an identity number such as “582” can have a display, lightsource, light emitting diodes (LEDs), and/or other lighted materials(e.g., flashing or non-flashing lights) that indicate the numbers “582”and so identify the robotic actor. As another example, a light sourcecan generate one or more light bursts that can identify an associatedactor; e.g., a light source associated with actor “247” can emit apattern of two light bursts, followed by four light bursts, and thenfollowed by seven light bursts. Then, the pattern of two, then four,then seven light bursts can signal “247” and so identify actor “247”.

In still other embodiments, an actor can have or otherwise be associatedwith an sound emitter (e.g., a loudspeaker, ultrasonic sound generator,or other sound-generating device) that can emit sounds that identify theactor; e.g., for robotic actor “582”, the sound emitter can play anaudio message such as “I am robotic actor 582” to identify the roboticactor. As another example, an ultrasonic sound generator can generateone or more ultrasonic sounds that can identify an associated actor;e.g., an ultrasonic sound generator for robotic actor “582” can emit apattern of five ultrasonic sound blasts, followed by eight ultrasonicsound blasts, and then followed by two ultrasonic sound blasts. Then,the pattern of five, then eight, then two ultrasonic sound blasts cansignal “582”, and so identify robotic actor “582”. Other techniques foridentifying human and/or robotic actors are possible as well.

Other sensors can be included with sensor 111 s as well; e.g., some orall of sensors 620 discussed below in the context of FIG. 6A. Othersensors 112 s-157 s in environment 100 can include the same or a similarsensor configuration as discussed above for sensor 111 s. Also, sizes ofsome or all areas 112-157 can depend on the capabilities; e.g., RFIDranges, of the respective sensors 112 s-157 s within the area, such asdiscussed above regarding the size of area 111.

In some embodiments, sensors in environment 100, such as sensor 111 s,can include redundant presence and/or identity sensors to increasereliability of the safety system; that is, sensor 111 s can include twoor more presence sensors and/or two or more identity sensors. Asredundant sensors, the two or more presence sensors and/or the two ormore identity sensors can be of a same kind, manufacture, and/or model.For example, if one of the two or more identity sensors fails and all ofthe identity sensors are the same kind and be of the same model from thesame manufacturer, the other working identity sensor(s) can seamlesslyperform the same task as the failed identity sensor. In other cases, thetwo or more presence sensors and/or the two or more identity sensors canbe of different kinds, manufactures, and/or models. The redundantsensors can be used to provide presence and/or actor type information byindependent communication paths to safety-system server 180 and/or othercomputing device(s), which can receive, process, and send informationfor the safety system. For example, presence and/or actor typeinformation can then be used to determine identifying information aboutactors in environment 100, safety rules, safety gradient maps, etc.

FIG. 1 shows that each of sensors 111 s-157 s is communicativelyconnected to safety-system server 180. Safety-system server 180 can beat least part of a safety system that can dynamically change localsafety regions based on global information received from sourcesthroughout environment 100, such as sensors 111 s-157 s, sensorsassociated with robotic actors, sensors associated with human actors,and/or other sources of information. For example, safety-system server180 can communicate with sensors 111 s-157 s using wired and/or wirelesscommunications. In some embodiments, safety-system server 180 can beredundantly connected to some or all of sensors 111 s-157 s; e.g.,safety-system server 180 can be connected to and communicate with someor all of sensors 111 s-157 s using two or more communications paths. Inparticular of these embodiments, sensors 111 s-157 s and/orsafety-system server 180 can have redundant components to ensure atleast no single point of failure can disable any one of sensors 111s-157 s, safety-system server 180, and/or communications paths betweensensors 111 s-157 s and server 180.

In redundant embodiments, sensors 111 s-157 s, safety-system server 180,and/or interconnections between the sensors and server 180 can operatein various operations modes, such as an all active mode where allavailable sensors, components of server 180 and communications paths areactively operating, or in an active-standby, where some components aremarked active and actively operate, and other components are markedstandby and become active either upon failure of a corresponding activesensor, server (component), or communication path or upon command. Otheroperations modes of redundant sensors, server components, andcommunications paths can be used in environment 100 as well.

In some embodiments, such as shown in FIG. 1, human actor 160 androbotic actor 170 can be in communication with safety-system server 180.For example, human actor 160 and robotic actor 170 can provide location,identification, and/or other information directly to safety-systemserver 180. As another example, human actor 160 and robotic actor 170can receive safety-related information, such as safety-area information,safety gradient maps, and safety rules, and/or other information fromsafety-system server 180. In particular embodiments, only some actors,such as some or all robotic actors and/or actors tasked with maintainingand operating safety-system server 180, may be in direct communicationwith safety-system server 180.

Based on a location and a role of an actor, a safety area around anactor can be determined. For example, if environment E1 is divided intoN areas, areas A₁, A₂ . . . A_(n), and human actor Hannah is within areaA₁₀, then robotic actor Rob can consider area A₁₀ to be part of thesafety area. Rob can learn about Hannah's presence in area A₁₀ fromsafety-system server 180. The safety area can depend on one or moretrajectories of human and/or robotic actors. For example, if Hannah istraveling between area A₁₀ and adjacent area A₁₁, then the safety-systemserver 180 can instruct Rob that areas A₁₀ and A₁₁ are in the safetyarea and perhaps provide related safety rules for operating in thesafety area.

FIG. 2 shows scenario 200 with safety areas specified for environment100, in accordance with an example embodiment. Scenarios 200, 300, and400 described with regards to FIGS. 2-4 all refer to environment 100.However, FIGS. 2-4 do not show all of the components of environment 100to reduce clutter; components present in environment 100 but not shownin FIGS. 2-4 include sensors 111 s-157 s, safety-system server 180, andcommunications links with safety-system server 180.

In scenarios 200, 300, and 400, safety-system server 180 and/or othercomputing device(s) can keep track of safety areas as part of a safetygradient map. For example, high safety areas within environment E1 wherehuman actors are located (and perhaps other sensitive actors, such asrobots carrying sensitive cargo or in need of maintenance) can have ahighest safety value. Areas of environment E1 surrounding the highsafety areas can be classified as medium safety and have a medium safetyvalue. In other cases, areas of environment E1 having only(non-sensitive) robotic actors can be marked as medium safety areas.Other areas in environment E1 can be classified as low safety and have alow safety value. Areas of overlap; e.g., an area where no humans orsensitive actors are present, but is adjacent to multiple areas wherehumans/sensitive actors are present, can have a higher safety value thanan area adjacent to only one area where humans/sensitive actors arepresent. In some cases, trajectories of humans/sensitive actors canaffect safety values; e.g., if human actor Howard is in area A₅₂ andmoving west, then an adjacent area A₅₁ west of area A₅₂ can have ahigher safety value than an adjacent area A₅₃ east of area A₅₂. Then,safety-system server 180 can maintain the safety gradient map with thesafety values for areas A₁, A₂ . . . A_(n) in environment E1.

Safety rules used by a robotic actor can be based on the safety gradientmap. A safety rule (related to an area A) can instruct an actor,particularly a robotic actor, to use one or more safety procedures(while in area A). For example, a robotic actor can be instructed to usemaximum safety procedures; e.g., reduce maximum speed, turn on localobject detection devices, etc., when in an area indicated by the safetygradient map (or otherwise indicated) having a high safety value. Therobotic actor can determine a safety value SV is a high safety value bydetermining that SV is above a highly-safe safety-value threshold, orperhaps using another technique. As another example, a robotic actor canbe instructed to use at least medium safety procedures; e.g., reducemaximum speed but leave local object detection devices off, etc., whenin an area indicated by the safety gradient map (or otherwise indicated)having a medium safety value.

The robotic actor can determine that safety value SV is a medium safetyvalue by determining that SV is below the highly-safe safety-valuethreshold, but above a medium-safe safety-value threshold, or perhapsusing another technique. In other examples, a robotic actor can beinstructed to use at least minimum safety procedures; e.g., allow use ofmaximum speed, leave local object detection devices off, etc., when inan area indicated by the safety gradient map (or otherwise indicated)having a low safety value. The robotic actor can determine that safetyvalue SV is a low safety value by determining that SV is below themedium-safe safety-value threshold, or perhaps using another technique.Other safety values, safety rules, and techniques for using safetygradient maps for determining safety areas are possible as well.

In scenario 200, safety-system server 180 and/or other computingdevice(s) (e.g., a computing device aboard a robotic actor, a mobiledevice carried by a human actor) can receive presence/location andidentification data for human actors 210, 212, 214, 216, 218 and roboticactors 220, 222, 224, 226, 228, 230. The presence/location andidentification data can be provided by sensors 111 s-157 s embedded inenvironment 100. In some embodiments, some or all presence/location andidentification data can be provided by items carried by human actors210, 212, 214, 216, 218 and robotic actors 220, 222, 224, 226, 228, 230;e.g., RFID devices, RFID chips, RFID tags, magnetic media/ID chips on IDbadges or other such media, GPS and/or other location sensors embeddedin device(s) of a robotic actor and/or in a device (such as a mobilecomputing device, head-mountable device, and/or smartphone) carried/wornby a human actor.

Safety-system server 180 and/or other computing device(s) can determinea safety classification for each of areas 111-157 in environment 100using the received presence/location and identification data. A safetyclassification of an area A can be a categorization or rankingindicating how much caution should be used by an actor, particularly arobotic actor, while operating in area A. In some embodiments, thesafety classification can be one of a low safety classification, amedium safety classification, and high safety classification.

For example, in scenario 200, safety-system server 180 and/or othercomputing device(s) can classify an area A in environment 100 with:

-   -   the high safety classification if area A is not otherwise        classified and if area A is at least partially occupied by one        or more human actors;    -   the medium safety classification if area A is not otherwise        classified and if area A is at least partially occupied by one        or more robotic actors; or    -   the low safety classification if no actors are at least        partially present within area A.

In other embodiments, safety-system server 180 can use more, fewer,and/or other safety classifications; e.g., a numerical scale for safety,such as a safety class ranging from 1 being very safe (or verydangerous) to a safety class of 10 being very dangerous (or very safe),an alphabetical scale (e.g., A=very safe to D (or F)=very dangerous orvice versa), another qualitative scale; e.g., use of classificationssuch as moderately safe, moderately unsafe, very dangerous, etc.

Safety-system server 180 can provide safety rules to robotic (andperhaps other) actors in environment 100. The safety rules cancorrespond to the safety classifications of areas within environment100; as such, a particular safety rule can be used in more than one area111-157 of environment 100 based on the safety classifications of theareas 111-157 of environment 100.

For example, robotic (and perhaps other actors) can use: a low safetyrule in areas classified with the low safety classification, a mediumsafety rule in areas classified with the medium safety classification,and a high safety rule when the particular safety classification is thehigh safety classification, where each of these three safety rules candiffer. For example, the low safety rule can relate to fewersafety-related provisions of the robotic device than the medium safetyrule, and the medium safety rule can relate to fewer safety-relatedprovisions of the robotic device than the high safety rule. In someembodiments, the low safety rule can specify a higher maximum speed thanspecified in the medium safety rule, and the medium safety rule canspecify a higher maximum speed than specified in the high safety rule.

In other embodiments, the medium safety rule can specify that a roboticactor is to slow down upon entry and/or exit of one of areas 111-157 ofenvironment 100, while the high safety rule can specify that a roboticactor is to stop for at least a predetermined amount of time (e.g., asecond) upon entry and/or exit of one of areas 111-157 of environment100, and the low safety rule can be silent about (not specify) slowingdown or stopping upon entry and/or exit of one of areas 111-157.

In another example, the medium and/or high safety rules can specify useof additional safety-related sensors by robotic devices than specifiedby the low safety rule. For example, suppose a robotic device has threetypes of location sensors: a low-resolution sensor, a medium-resolutionsensor that can provide more accurate location information than thelow-resolution sensor, and a high-resolution sensor that can providemore accurate location information than the medium-resolution sensorthan the medium resolution sensor. Then, the low safety rule can specifyuse of at least the low-resolution sensor, the medium safety rule canspecify use of at least the low- and medium-resolution sensors, and thehigh safety rule can specify use of at least the low-, medium-, andhigh-resolution sensors. In a related example, a robotic device can beconfigured with a local safety system that, when active, ensures therobotic device is operating a safer condition than when the local safetysystem is not active. Then, if the low safety rule does not specify useof the local safety system, then at least one of the medium and highsafety rules can specify use of the local safety system; of course, ifthe low safety rule does specify use of the local safety system, thenthe medium and high safety rules can also specify use of the localsafety system. Many other example safety rules are possible as well.

FIG. 2 shows that, safety-system server 180 and/or other computingdevice(s) can use the received presence/location and identification dataof scenario 200 to determine that:

-   -   human actors 210, 214, and 216 are in respective areas 116, 125,        and 143 of environment 100;    -   human actor 212 is between areas 121 and 122;    -   human actor 218 is at or near the intersection point of areas        143, 144, 153, and 154;    -   robotic actors 220, 222, 224, 226, and 230 are in respective        areas 114, 131, 146, 146, and 157; and    -   robotic actor 228 is between areas 155 and 156.

Then, safety-system server 180 and/or other computing device(s) candetermine that each of respective areas 116, 121, 122, 125, 143, 144,153, and 154 is at least partially occupied by one or more human actors,and thus can be classified as high safety areas. High safety areas areshown in FIG. 2 using relatively-dark grey shading. Both of areas 121and 122 can be considered as high safety areas as human actor 212 isbetween areas 121 and 122. Also, all four of areas 143, 144, 153, and154 can be considered as high safety areas as human actor 218 is at ornear the intersection point of the four areas and so can be consideredto be at least partially occupying all four areas.

In scenario 200, areas not already classified and at least partiallyoccupied by one or robotic actors can be classified as medium safetyareas; then, safety-system server 180 can classify areas 114, 131, 145,146, and 155-157 as medium safety areas. Medium safety areas are shownin FIG. 2 using relatively-light grey shading in comparison to therelatively-dark grey shading used for high safety areas. Both of areas155 and 156 can be considered as medium safety areas as robotic actor228 is between areas 155 and 156 and so can be considered to be at leastpartially occupying both areas.

Additionally, safety-system server 180 and/or other computing device(s)can classify areas not having any actors at least partially present aslow safety areas. In scenario 200, areas 111-113, 115, 117, 123, 124,126, 127, 132-137, 141, 142, 147, 151, and 152 therefore can beclassified as low safety areas. Low safety areas are shown in FIG. 2without shading.

FIGS. 3A-3H show scenario 300 with safety areas specified forenvironment 100, in accordance with an example embodiment. Throughoutscenario 300, safety-system server 180 and/or other computing device(s)(e.g., a computing device aboard a robotic actor, a mobile devicecarried by a human actor) can receive presence/location andidentification data for human actors 210, 212, 214, 216, 218 and roboticactors 220, 222, 224, 226, 228, 230.

At the beginning of scenario 300 and as indicated in FIG. 3A,safety-system server 180 and/or other computing device(s) can usereceived presence/location and identification data to determine that:

-   -   human actors 210, 214, and 216 are in respective areas 116, 125,        and 143 of environment 100;    -   human actor 212 is between areas 121 and 122;    -   human actor 218 is at or near the intersection point of areas        143, 144, 153, and 154;    -   robotic actors 220, 222, 224, 226, and 230 are in respective        areas 114, 131, 146, 146, and 157; and    -   robotic actor 228 is between areas 155 and 156.

In scenario 300, the classification of high, medium, and low safetyareas is the same as in scenario 200. For classifying high safety areas,safety-system server 180 and/or other computing device(s) can determinethat each of respective areas 116, 121, 122, 125, 143, 144, 153, and 154is at least partially occupied by one or more human actors. High safetyareas are shown in FIGS. 3A-3H using relatively-dark grey shading.

In scenario 300, areas not already classified and at least partiallyoccupied by one or robotic actors can be classified as medium safetyareas; then, safety-system server 180 can classify areas 114, 131, 145,146, and 155-157 as medium safety areas. Medium safety areas are shownin FIG. 3A using relatively-light grey shading in comparison to therelatively-dark grey shading used for high safety areas.

Additionally, safety-system server 180 and/or other computing device(s)can classify areas not having any actors at least partially present aslow safety areas. In scenario 300, areas 111-113, 115, 117, 123, 124,126, 127, 132-137, 141, 142, 147, 151, and 152 can be initiallyclassified as low safety areas. Low safety areas are shown in FIG. 3Awithout shading.

Scenario 300 has two additional actors in comparison with scenario 200.At the beginning of scenario 300 as shown in FIG. 3A, both human actor310 and unknown actor 312 are outside of environment 100 near area 127.

Scenario 300 continues as shown in FIG. 3B, which indicatessafety-system server 180 and/or other computing device(s) can usereceived presence/location and identification data to determine that,with respect to the positions of actors shown in FIG. 3A:

-   -   human actors 210, 212, 216, and 218 have respectively moved to        areas 115, 133, 133, and 143 of environment 100;    -   human actor 214 remained in area 125;    -   human actor 310 has entered environment 100 and is currently        within area 127;    -   robotic actors 220, 222, and 228 have respectively moved to        areas 125, 132, and 156;    -   robotic actors 224, 226 both remained in area 146; and    -   robotic actor 230 is between areas 156 and 157.

Then, safety-system server 180 and/or other computing device(s) candetermine that each of respective areas 115, 125, 127, 133, and 143 isnot already classified and is at least partially occupied by one or morehuman actors and so classify these areas as high safety areas.

In classifying medium safety areas, safety-system server 180 and/orother computing device(s) areas can determine that each of respectiveareas 132, 145, 146, and 155-157 is not already classified and is leastpartially occupied by one or more robotic actors and so can beclassified as medium safety areas. The areas not classified as high ormedium safety areas; that is, areas 111-114, 116, 117, 121-124, 126,131, 134-137, 141, 142, 144, 147, and 151-154, can be classified as lowsafety areas by safety-system server 180 and/or other computingdevice(s); areas 111-114, 116, 117, 121-124, 126, 131, 134-137, 141,142, 144, 147, and 151-154, can also be classified as low safety areadue the absence of actors in those areas.

Scenario 300 can continue with unknown actor 312 entering environment100 at the same time as human actor 310. Safety-system server 180 and/orother computing device(s) can also receive data from sensors, such asbut not limited to sensors 126 s, 127 s, 136 s, 137 s, 146 s, and 147 sto determine than an unknown actor (likely) is in area 137, as shown inFIG. 3B. For example, safety-system server 180 can receivepresence/location data that an actor is in area 137; e.g., unknown actor312, while not receiving related identification data for the actor inarea 137. As such, safety-system server 180 and/or other computingdevice(s) can determine an unknown actor (likely) is in area 137.

Scenario 300 continues as shown in FIG. 3C after safety-system server180 and/or other computing device(s) have determined an unknown actor isin environment 100. In scenario 300, safety-system server 180 and/orother computing device(s) can indicate all areas in environment 100 arehigh safety areas while the unknown actor is not identified and/orremoved from environment 100. The indication that all areas inenvironment 100 are high safety areas is shown in FIG. 3C usingrelatively-dark shading throughout environment 100.

In scenario 300, safety-system server 180 and/or other computingdevice(s) can also send an emergency safety rule with one or morecommands to stop and/or shut down all robotic devices while the unknownactor is not identified and/or removed from environment 100.Additionally, safety-system server 180 and/or other computing device(s)can request human actor(s) assist in locating, identifying, and/orremoving unknown actor 312—in scenario 300, human actor 214 is requestedto locate, identify, and perhaps remove the unknown actor in area 137from environment 100. In other scenarios, designated robotic actors canassist in locating, identifying, and/or removing unknown actors fromenvironment 100.

Scenario 300 continues, as shown in FIG. 3D, with the entirety ofenvironment 100 designated as a high safety area. Also, robotic actors220-230 have stopped while human actor 214 searches for unknown actor312 in accord with the emergency safety rule sent by safety-systemserver 180 and/or other computing device(s) to stop and/or shut down allrobotic devices.

FIG. 3E shows that scenario 300 continues with human actor 214 hasfinding and collaring a dog identified as unknown actor 312 in area 136of environment 300. Human actor 214 can inform safety-system server 180and/or other computing device(s) that unknown actor 312 has been locatedand will remain in the same area as human actor 214 while unknown actor312 is present within environment 100. In some cases, after locating anunknown actor, such as unknown actor 312, within environment 100, theunknown actor can be provided with (temporary) sensors to providelocation and/or actor type information to allow safety-system server 180and/or other computing device(s) to locate and identify the unknownactor while present in environment 100.

Scenario 300 continues with safety-system server 180 and/or othercomputing device(s) determining that unknown actor 312 is located inarea 136. In scenario 300, unknown actor 312 is escorted out ofenvironment 100 by human actor 214. After unknown actor 312 has beenlocated, the portion of environment 100 where unknown actor 312 canaffect operations within environment 100 can be localized to a regionnear unknown actor 312. For example, safety-system server 180 and/orother computing device(s) can determine a safety buffer (SB) of highsafety areas that surrounds an unknown actor accurately located andpresent within environment 100, such as safety buffer 320 shown in FIG.3F surrounding unknown actor 312 in area 136.

After designating high safety areas within safety buffer 320, includingareas 125-127, 135-137, and 145-147, other areas of environment 100 canbe classified as high, medium, or low safety areas based on human androbotic presence as discussed above in the context of FIG. 3A.Safety-system server 180 and/or other computing device(s) can usereceived presence/location and identification data to determine that,with respect to the positions of actors shown in FIG. 3B (the lastdepiction of safety areas before all of environment 100 was designatedas a high safety area due to the entry of unknown actor 312):

-   -   human actors 210, 214, 218, and 310 have respectively moved to        areas 114, 127, 133, and 126;    -   human actor 212 is now between areas 144 and 145;    -   human actor 216 remained in area 133;    -   human actor 310 has entered environment 100 and is currently        within area 126;    -   robotic actors 220, 222, 224, 226, and 228 have stopped and        remain in respective areas 125, 132, 146, 146, 156; and    -   robotic actor 230 is stopped between areas 156 and 157.

Then, after designating areas 125-127, 135-137, and 145-147 as highsafety areas due to their presence in safety buffer 320, safety-systemserver 180 and/or other computing device(s) can additionally designateareas 114, 133, and 144 as high safety areas due to the at least partialoccupation of each of those areas by one or more human actors.Safety-system server 180 and/or other computing device(s) can alsodesignate areas 132, 156, and 157 as medium safety areas, as each ofareas 132, 156, and 157 was not otherwise designated and is at leastpartially occupied by one or more robotic actors. Additionally,safety-system server 180 and/or other computing device(s) can alsodesignate areas 111-113, 115-117, 121-124, 131, 134, 141-143, and151-155 as low safety areas, as each of these areas is devoid of actors.

Scenario 300 continues with human actor 214 leading unknown actor 312 toarea 127 as shown in FIG. 3G. As such, safety-system server 180 and/orother computing device(s) can use received presence/location andidentification data for human actor 214 and perhaps unknown actor 312 todetermine safety buffer 322 shown in FIG. 3G in the same way as safetybuffer 320 (shown in FIG. 3F) was determined FIG. 3G shows that safetybuffer 322 includes designations of areas 116, 117, 126, 127, 136, and137 as high safety areas.

In addition, safety-system server 180 and/or other computing device(s)can use received presence/location and identification data to updatesafety information for environment 100 after determining that, withrespect to the positions of the actors shown in FIG. 3F:

-   -   human actors 210, 212, 214, and 310 have respectively moved to        areas 113, 145, 127, and 125;    -   human actors 216 and 218 both remained in area 133;    -   robotic actors 220, 224, 226, and 228 remain in respective areas        125, 146, 146, and 156;    -   robotic actor 222 is now between areas 142 and 143; and    -   robotic actor 230 is now in area 156.

Then, after designating areas 116, 117, 126, 127, 136, and 137 as highsafety areas due to their presence in safety buffer 322, safety-systemserver 180 and/or other computing device(s) can additionally designateareas 113, 125, 133, and 145 as high safety areas due to the at leastpartial occupation of each of those areas by one or more human actors.Safety-system server 180 and/or other computing device(s) can alsodesignate areas 142, 143, 146, and 156 as medium safety areas, as eachof areas 142, 143, 146, and 156 was not otherwise designated and is atleast partially occupied by one or more robotic actors. Additionally,safety-system server 180 and/or other computing device(s) can alsodesignate areas 111, 112, 114, 115, 121-124, 131, 132, 134, 135, 141,144, 147, 151-155, and 157 as low safety areas, as each of these areasdoes not include any actors.

Scenario 300 continues with human actor 214 escorting unknown actor 312out of environment 312 as shown in FIG. 3H. As such, safety-systemserver 180 and/or other computing device(s) can determine no unknownactors are inside environment 100, and so no safety buffers aroundunknown actors are to be utilized.

In addition, safety-system server 180 and/or other computing device(s)can use received presence/location and identification data to updatesafety information for environment 100 after determining that, withrespect to the positions of the actors shown in FIG. 3G:

-   -   human actor 210 has moved to area 112;    -   human actor 212 is now between areas 136 and 146;    -   human actors 214, 216. and 218 have respectively remained in        areas 127, 133, 133;    -   human actor 310 is at or near the intersection of areas 114,        115, 124, and 125    -   robotic actors 220, 224, 226, and 228 remain in respective areas        125, 146, 146, and 156;    -   robotic actor 222 is now between areas 142 and 143; and    -   robotic actor 230 is now in area 156.

As shown in FIG. 3H, safety-system server 180 and/or other computingdevice(s) can designate areas 112, 114, 115, 124, 125, 127, 133, 135,136, and 146 as high safety areas due to the at least partial occupationof each of those areas by one or more human actors. Safety-system server180 and/or other computing device(s) can also designate areas 143, 145,and 156 as medium safety areas, as each of areas 143, 145, and 156 wasnot otherwise designated and is at least partially occupied by one ormore robotic actors. Additionally, safety-system server 180 and/or othercomputing device(s) can also designate areas 111, 113, 116, 117,121-123, 126, 131, 132, 134, 135, 137, 141, 142, 144, 147, 151-155, and157 as low safety areas, as each of these areas does not include anyactors.

FIG. 4 shows scenario 400 with safety areas specified for environment100, in accordance with an example embodiment. Scenario 400 is relatedto scenario 200, but the determination of safety areas differs betweenthe two scenarios.

In scenario 400, safety-system server 180 and/or other computingdevice(s) (e.g., a computing device aboard a robotic actor, a mobiledevice carried by a human actor) can receive presence/location andidentification data for human actors 210, 212, 214, 216, 218 and roboticactors 220, 222, 224, 226, 228, 230. Then, safety-system server 180and/or other computing device(s) can use received presence/location andidentification data to determine that, for scenario 400:

-   -   human actors 210, 214, and 216 are in respective areas 116, 125,        and 143 of environment 100;    -   human actor 212 is between areas 121 and 122;    -   human actor 218 is at or near the intersection point of areas        143, 144, 153, and 154;    -   robotic actors 220, 222, 224, 226, and 230 are in respective        areas 114, 131, 146, 146, and 157; and    -   robotic actor 228 is between areas 155 and 156.

In scenario 400, the classification of high safety areas is the same asin scenario 200; that is, safety-system server 180 and/or othercomputing device(s) can determine that each of respective areas 116,121, 122, 125, 143, 144, 153, and 154 is not already classified and isat least partially occupied by one or more human actors during scenario400, and thus can be classified as high safety areas. High safety areasare shown in FIG. 4 using relatively-dark grey shading.

However, the classification of medium safety areas differs betweenscenarios 200 and 400. In scenario 400, safety-system server 180 and/orother computing device(s) can classify an area A as a medium safety areaif area A has not already been classified and if area A is an areasurrounding a high safety area. In scenario 400 and as shown in FIG. 4,safety-system server 180 and/or other computing device(s) can classifyareas 111-115, 117, 123, 124, 126, 127, 131-136, 142, 145, 152, and 155as medium safety areas. Medium safety areas are shown in FIG. 4 usingrelatively-light grey shading in comparison to the relatively-dark greyshading used for high safety areas. That is, in scenario 200, thepresence of robotic actors played a role in classifying medium safetyareas, while in scenario 400, medium safety areas act as safety bufferssurrounding high safety areas (classified based on human presencealone), and thus, classification of medium safety areas in scenario 400only depends on the presence/locations of human actors.

In some cases, areas 132 and 133 can be classified with higher safetyvalues than areas 111, 112, 113, 123, and 131 as the areas 132 and 133are areas that are within the surrounds of high safety areas formultiple human actors 212, 216, and 218, while areas 111, 112, 113, 123,and 131 are within the surrounds of only one human actor 212. In somecases, medium safety areas in the direction of travel of a human actorcan be classified with higher safety values and/or medium safety areasin an opposite direction of the direction of travel of a human actor canbe classified with lower safety values. For example, for human actor 210in area 116 traveling west, medium safety area 115 (west of area 116)can be classified with a relatively-high safety value in comparison tomedium safety area 117 (east of area 115).

In scenario 400, safety-system server 180 and/or other computingdevice(s) can classify an area A as a low safety area if area A was notpreviously classified as high or medium safety area. Thus, areas 137,141, 146, 147, 151, 156, and 157 can be classified as low safety areasfor scenario 400. Low safety areas are shown in FIG. 4 without shading.

FIG. 5A shows example safety areas specified with respect to grid 510for human actors, in accordance with an example embodiment. Grid 510 isa 5×5 grid of cells including a top row of cells 511, 512, 513, 514,515, a second-from-top row of cells 521, 522, 523, 524, 525, a middlerow of cells 531, 532, 533, 534, 535, a second-from-bottom row of cells541, 542, 543, 544, 545, and a bottom row of cells 551, 552, 553, 554,555. Each of the safety areas shown in FIG. 5A can be classified by oneor more computing devices, such as safety-system server 180 and/or othercomputing device(s), operating on data, such as but not limited to data560, 562, 564, and 566 as discussed below.

As shown in the upper left portion of FIG. 5A, a human actor “Bob Z.” islocated in cell 533 as specified in available data 560. Using data 560,cell 533 can be classified as a high safety area due to the presence ofa human actor (Bob Z.) and cells surrounding cell 533; that is cells522-524, 532, 534, and 542-544 can each be designated as medium safetyareas. That is, the specification of cells 522-524, 532, 534, and542-544 as medium safety areas can act as a safety buffer around humanactor Bob Z. in cell 533. The remaining cells within grid 510; that iscells 511-515, 521, 525, 531, 535, 541, 545, and 551-555 can beclassified as low safety areas.

A safety classification, a safety area and/or a safety buffer can dependon data about one or more actual, predicted, and/or instructedtrajectories of human and/or robotic actors. Data about a trajectory ofan actor can include, but is not limited to, a location of the actor, avelocity of an actor, a speed of an actor, a direction of travel of theactor, an acceleration of the actor, and/or instructions related to atrajectory for the actor. Examples of such instructions related to atrajectory include: an instruction to obtain an object located at cell511, a command to go from cell 511 to cell 555 via cell 543, a requestto be at cell 522 within 5 minutes, an order to stay in cell 533, etc.

As shown in the upper right portion of FIG. 5A, data 562 indicates thathuman actor Bob Z. is located at cell 533 and is moving with a velocityof 1 cell per second in an eastward direction, and so Bob Z. (likely)has an eastward trajectory. As such, the previously-discussed safetybuffer around Bob Z. can be modified to designate cells 532 and 535 asmoderate safety areas. A moderate safety area can be considered to be anarea with fewer and/or less restrictive safety rules than the safetyrules associated with a medium safety area, but with more and/or morerestrictive safety rules than the safety rules associated with a lowsafety area. In comparison with the example safety buffer shown in atupper left of FIG. 5A, cell 532 can be classified as a moderate safetyrule rather than a medium safety rule since cell 532 is directlyopposite to a direction of travel (East) for human actor Bob Z., whilecell 535 can be designated as a moderate safety rule rather than a lowsafety rule since cell 535 in the direction of travel for human actorBob Z. The remaining cells within grid 510; that is cells 511-515, 521,531, 535, 541, 545, and 551-555 can be classified as low safety areas.

In the lower left portion of FIG. 5A, data 564 indicates that humanactor Bob Z. is located at cell 533 and is moving with a velocity of 2cells per second in an eastward direction, and so Bob Z. (likely) has aneastward trajectory that is relatively rapid compared to the likelytrajectory of Bob Z. indicated by data 562. As such, a safety bufferaround Bob Z. can include all cells within 2 cells of Bob Z.'s currentlocation (cell 533). As such, each cell in grid 510 shown at lower leftof FIG. 5A is classified as at least a moderate safety area: cell 533can be classified as a high safety area due to the presence of a humanactor; cells 513-515, 522-525, 532, 534, 535, 542-545, and 553-555 caneach be classified as a medium safety area as being at least somewhatlikely that Bob Z. will travel through the cell based on Bob's Z'scurrent location and velocity; and cells 511, 512, 521, 531, 541, 551,and 552 can each be classified as a moderate safety area as being atleast possible that that Bob Z. travel through the cell based on Bob'sZ's current location and velocity.

In the lower right portion of FIG. 5A, data 566 indicates that humanactor Bob Z. is located at cell 533 and is moving with a velocity of 1cell per second in an eastward direction and with an acceleration of 0.5cells/second² in a northward direction, and so Bob Z. (likely) has aneastward or north-eastward trajectory. As such, a safety buffer aroundBob Z. can include all cells surrounding of Bob Z.'s current location(cell 533) as well as additional cells based on Bob Z's likely travelpath. Cell 533 can be classified as a high safety cell due to Bob Z'spresence. Regarding the cells surrounding cell 533, as Bob Z. is movingeast and accelerating northward, cells to the north and/or east of cell533 can be determined to be more likely to be traversed by Bob Z. thancells to the south and/or west of cell 532. As such, cells 522, 532, and542 that are south and/or west of cell 533 can be classified as moderatesafety cells, and cells 522, 524, 524, 534, and 544 can be classified asmedium safety cells. Also, as Bob Z is accelerating, there is apossibility that Bob Z. will reach a cell that is north and/or east and2 cells from Bob Z.'s current location in cell 533; thus, cells 513,514, and 515 which are two cells north and zero or more cells east fromcell 533, can be classified as moderate safety cells, while cells 525and 535, which are two cells east and zero or more cells north of cell533, can be classified as medium safety cells. The remaining cellswithin grid 510; that is cells 511, 512, 521, 531, 541, and 551-555 canbe classified as low safety areas.

FIG. 5B shows example safety areas for robotic actors, in accordancewith an example embodiment. Each of the safety areas shown in FIG. 5Bcan be classified by one or more computing devices, such assafety-system server 180 and/or other computing device(s), operating ondata, such as but not limited to data 570, 572, 574, and 576 asdiscussed below. As shown in the upper left portion of FIG. 5B, robot580 is located in cell 553 as specified in available data 570. Usingdata 570, cell 533 can be classified as a medium safety area due to thepresence of a robotic actor (robot 580) and cells surrounding cell 533;that is cells 522-524, 532, 534, and 542-544 can each be designated asmoderate safety areas. That is, the specification of cells 522-524, 532,534, and 542-544 as moderate safety areas can act as a safety bufferaround robot 580 in cell 533. The remaining cells within grid 510; thatis cells 511-515, 521, 525, 531, 535, 541, 545, and 551-555 can beclassified as low safety areas.

As shown in the upper right portion of FIG. 5B, data 572 indicates robot580 is located at cell 533 and has been instructed to move at a velocityof 1 cell per second in an eastward direction, and so robot 580 (likely)has an eastward trajectory. As such, the previously-discussed safetybuffer around robot 580 can be modified—based on information about whererobot 580 will move; e.g., the “Location” and “Instructions” of data572. The safety buffer around robot 580 can cover all cells within onecell (the instructed velocity of robot 580) in an eastward direction ofrobot 580's current location (cell 533). Cell 534 (one cell east of cell533) can be classified as a safety buffer by indicating cell 534 is amedium safety area. In other embodiments, cell 534 can be classified asa moderate safety area, rather than a medium safety area. In still otherembodiments, other cells can be designated as part of the safety buffer,perhaps as moderate safety areas; e.g., cells 524 and 544 can bedesignated as part of the safety buffer as being in the generaldirection of travel of robot 580. The remaining cells within grid 510;that is cells 511-515, 521-525. 531, 532, 535, 541-545, and 551-555 canbe classified as low safety areas.

In still other embodiments, data about actual velocity and/oracceleration of robot 580 can be used to determine a safety buffer abouta robotic actor. That is, even though robot 580 is instructed to moveeast at 1 cell per second, the weight, velocity, acceleration, and/orother data about robot 580 may indicate that robot 580's actualtrajectory will include to initial movement(s) in other direction(s)than the eastward direction specified in the “Instructions” of data,such as data 572. These movement(s) can take robot 580 through othercells in grid 510 than cells 533 and 534 before robot 580 moveseastward. Then, the one or more computing device classifying cells ingrid 510 can predict which other cells robot 580 will traverse based onthe weight, velocity, acceleration, and/or other data of robot 580, andadd those other cells to the safety buffer, or perhaps use those othercells as the safety buffer rather than cell 534.

In the lower left portion of FIG. 5B, data 574 indicates robot 580 islocated at cell 533 and has been instructed to move at a velocity of 2cells per second in an eastward direction, and so robot 580 (likely) hasan eastward trajectory that is relatively rapid compared to the likelytrajectory of robot 580 indicated by data 572. As such, a safety bufferfor robot 580 can be expanded to cover all cells within two cells in aneastward direction of robot 580's current location (cell 533). As such,cell 534 (one cell east of cell 533) can be classified as a mediumsafety area, as discussed above in the context of grid 510 and data 572,and cell 535 (two cells east of cell 533) can be classified as amoderate safety area. In some embodiments, other cells; e.g., cells thatmay be in robot 580's direction of travel, such as cells 511, 522, 523,544, 545, and/or 555, can be added to the safety buffer as well. Cellsnot added to the safety buffer; e.g., cells 511-515, 521-525, 531, 532,541-545, and 551-555, can be classified as low safety areas.

In the lower right portion of FIG. 5B, data 576 indicates that robot582, shown using a diamond shape, is located in cell 533 and isinstructed to move with a velocity of 1 cell per second in anorth-westerly direction, and so robot 582 (likely) has annorth-westward trajectory. Data 576 also indicates that robot 582 has atype of a “Special Robot”; in this example, a special robot is used toperform sensitive and/or dangerous tasks such as, but not limited to,carrying sensitive and/or dangerous payloads. As robot 582 is determinedto be a Special Robot, cell 533 can be marked as a high safety arearather than a medium safety area used for a location of non-specialrobot 580.

In some embodiments, additional data, such as data about a task beingperformed by robot 582, can indicate a type of safety area applicable toa location of a robot; e.g., if robot 582 is carrying a dangerouspayload, the location where robot 582 is located can be classified as ahigh safety area, while if robot 582 is traveling between tasklocations, then the location where robot 582 is located can beclassified as a medium safety area. Additionally, the data about a taskand/or type of robot can be used to classify cells as part of a safetybuffer; e.g., the one or more computing devices can provide arelatively-large safety buffer for a robot performing a dangerous taskor provide a relatively-small (or no) safety buffer for a robotperforming an ordinary (non-dangerous) task.

In the example shown in FIG. 5B, robot 582 is instructed to travelnorthwest. A safety buffer around robot 582 can cover all cells withinone cell (the instructed velocity of robot 582) in a northwesterlydirection of robot 582's current location (cell 533). Cells 522 (onecell northwest of cell 533), 523 (one cell north of cell 533), and 532(one cell west of cell 533) can be specified as part of a safety buffer;e.g., by indicating cell 522 is a high safety area, and indicating bothcells 523 and 532 as medium safety areas as shown in at lower right ofFIG. 5B. In other embodiments, cell 522 can be classified as a moderateor medium safety area, rather than as a high safety area. In even otherembodiments, cells 523 and/or 532 can be classified as low safety areas(i.e., not part of the safety buffer), moderate safety areas, or highsafety areas, rather than as medium safety areas. In still otherembodiments, other cells can be designated as part of the safety buffer;e.g., cells 511, 512, 513, 521, and/or 531 can be designated as part ofthe safety buffer as being in the general direction of travel of robot582. The remaining cells within grid 510; that is cells 511-515, 521,524, 525. 531, 534, 535, 541-545, and 551-555 can be classified as lowsafety areas.

The one or more computing devices classifying cells of grid 510 forhuman and/or robotic actors can classify safety areas based uponavailable data, including actor-related data, location data, velocitydata, and acceleration data. Other types of available data can affectclassifications of safety areas. Other techniques for determining safetyvalues and/or classifying areas in an environment, such as but notlimited to environment 100 or grid 510, as safety areas are possible aswell.

Computing Device Architecture

FIG. 6A is a functional block diagram of computing device 600 (e.g.,system, in accordance with an example embodiment. In particular,computing device 600 shown in FIG. 6A can be configured to perform oneor more functions of a robot, robotic actor, a special robot,safety-system server 180, a computing device as discussed in the contextof FIGS. 5A and 5B, network 614, method 700, and one or more functionsrelated to one or more of scenarios 200, 300, and/or 400. Computingdevice 600 may include a user interface module 601, anetwork-communication interface module 602, one or more processors 603,data storage 604, one or more sensors 620, and one or more actuators630, all of which may be linked together via a system bus, network, orother connection mechanism 605.

User interface module 601 can be operable to send data to and/or receivedata from external user input/output devices. For example, userinterface module 601 can be configured to send and/or receive data toand/or from user input devices such as a keyboard, a keypad, a touchscreen, a computer mouse, a track ball, a joystick, a camera, a voicerecognition module, and/or other similar devices. User interface module601 can also be configured to provide output to user display devices,such as one or more cathode ray tubes (CRT), liquid crystal displays(LCD), light emitting diodes (LEDs), displays using digital lightprocessing (DLP) technology, printers, light bulbs, and/or other similardevices, either now known or later developed. User interface module 601can also be configured to generate audible output(s), such as a speaker,speaker jack, audio output port, audio output device, earphones, and/orother similar devices.

Network-communications interface module 602 can include one or morewireless interfaces 607 and/or one or more wireline interfaces 608 thatare configurable to communicate via a network. Wireless interfaces 607can include one or more wireless transmitters, receivers, and/ortransceivers, such as a Bluetooth transceiver, a Zigbee transceiver, aWi-Fi transceiver, a WiMAX transceiver, and/or other similar type ofwireless transceiver configurable to communicate via a wireless network.Wireline interfaces 608 can include one or more wireline transmitters,receivers, and/or transceivers, such as an Ethernet transceiver, aUniversal Serial Bus (USB) transceiver, or similar transceiverconfigurable to communicate via a twisted pair wire, a coaxial cable, afiber-optic link, or a similar physical connection to a wirelinenetwork.

In some embodiments, network communications interface module 602 can beconfigured to provide reliable, secured, and/or authenticatedcommunications. For each communication described herein, information forensuring reliable communications (i.e., guaranteed message delivery) canbe provided, perhaps as part of a message header and/or footer (e.g.,packet/message sequencing information, encapsulation header(s) and/orfooter(s), size/time information, and transmission verificationinformation such as CRC and/or parity check values). Communications canbe made secure (e.g., be encoded or encrypted) and/or decrypted/decodedusing one or more cryptographic protocols and/or algorithms, such as,but not limited to, DES, AES, RSA, Diffie-Hellman, and/or DSA. Othercryptographic protocols and/or algorithms can be used as well or inaddition to those listed herein to secure (and then decrypt/decode)communications.

Processors 603 can include one or more general purpose processors and/orone or more special purpose processors (e.g., digital signal processors,graphics processing units, application specific integrated circuits,etc.). Processors 603 can be configured to execute computer-readableprogram instructions 606 that are contained in the data storage 604and/or other instructions as described herein.

Data storage 604 can include one or more computer-readable storage mediathat can be read and/or accessed by at least one of processors 603. Theone or more computer-readable storage media can include volatile and/ornon-volatile storage components, such as optical, magnetic, organic orother memory or disc storage, which can be integrated in whole or inpart with at least one of processors 603. In some embodiments, datastorage 604 can be implemented using a single physical device (e.g., oneoptical, magnetic, organic or other memory or disc storage unit), whilein other embodiments, data storage 604 can be implemented using two ormore physical devices.

Data storage 604 can include computer-readable program instructions 606and perhaps additional data. In some embodiments, data storage 604 canadditionally include storage required to perform at least part of theherein-described methods and techniques and/or at least part of thefunctionality of the devices and networks.

In some embodiments, computing device 600 can include one or moresensors 620. Sensor(s) 620 can be configured to measure conditions in anenvironment for computing device 600 and provide data about thatenvironment. In some examples, sensor(s) 620 can include one or more of:a gyroscope, an accelerometer, a Doppler sensor, a sonar sensor, a radardevice, a laser-displacement sensor, and a compass, possibly to measurelocations and/or movements of the computing device 600. In otherexamples, sensor(s) 620 can include one or more of: an infrared sensor,an optical sensor, a light sensor, a camera, a biosensor, a capacitivesensor, a touch sensor, a temperature sensor, a wireless sensor, a radiosensor, a movement sensor, a microphone, a sound sensor, an ultrasoundsensor, and/or a smoke sensor, possibly to obtain data indicative of anenvironment of the computing device 600. In addition, sensor(s) 620 caninclude one or more sensors that measure forces acting about thecomputing device 600. For example, sensor(s) 620 can include one or moresensors that measure forces (e.g., inertial forces and/or G-forces) inmultiple dimensions. Further, sensor(s) 620 can include one or moresensors that measure: torque, ground force, friction, and/or a zeromoment point (ZMP) sensor that identifies ZMPs and/or locations of theZMPs. Other examples of sensor(s) 620 are possible as well. In someembodiments, some or all of sensors 620 can be distributed throughout anenvironment; e.g., sensors 111 s-157 s dispersed throughout environment100 such as discussed above at least in the context of FIG. 1.

Computing device 600 can include one or more actuators 630 that enablecomputing device 600 to initiate movement. For example, actuator(s) 630can include or be incorporated with robotic joints connecting roboticlimbs to a robotic body. For example, actuator(s) 630 can includerespective robotic hip and robotic shoulder joints connecting respectiverobotic legs and arms to the robotic body. Further, the actuator(s) 630can include respective robotic knee joints connecting respectiveportions of the robotic legs (e.g., robotic thighs and robotic calves)and elbow joints connecting portions of the robotic arms (e.g., roboticforearms and upper arms). Yet further, actuator(s) 630 can includerespective robotic ankle joints connecting the robotic legs to roboticfeet and respective robotic wrist joints connecting the robotic arms torobotic hands. In addition, actuator(s) 630 can include motors formoving the robotic limbs. As such, the actuator(s) 630 can enablemobility of computing device 600. Other examples of actuator(s) 630 arepossible as well.

Cloud-Based Servers

FIG. 6B depicts a network 614 of computing clusters 609 a, 609 b, 609 carranged as a cloud-based server system in accordance with an exampleembodiment. Computing clusters 609 a, 609 b, 609 c can be cloud-baseddevices that store program logic and/or data of cloud-based applicationsand/or services; e.g., some or all of the herein-described functionalityrelated to scenario 200, scenario 300, scenario 400, and/or method 700.

In some embodiments, computing clusters 609 a, 609 b, 609 c can be asingle computing device residing in a single computing center. In otherembodiments, computing clusters 609 a, 609 b, 609 c can include multiplecomputing devices in a single computing center, or even multiplecomputing devices located in multiple computing centers located indiverse geographic locations. For example, FIG. 6B depicts each ofcomputing clusters 609 a, 609 b, 609 c residing in different physicallocations.

In some embodiments, data and services at computing clusters 609 a, 609b, 609 c can be encoded as computer readable information stored innon-transitory, tangible computer readable media (or computer readablestorage media) and accessible by other computing devices. In someembodiments, computing clusters 609 a, 609 b, 609 c can be stored on asingle disk drive or other tangible storage media, or can be implementedon multiple disk drives or other tangible storage media located at oneor more diverse geographic locations.

FIG. 6B depicts a cloud-based server system in accordance with anexample embodiment. In FIG. 6B, functionality of a robot, safety-systemserver, robotic device, special robot, and/or robotic actor can bedistributed among three computing clusters 609 a, 609 b, and 609 c.Computing cluster 609 a can include one or more computing devices 600 a,cluster storage arrays 610 a, and cluster routers 611 a connected by alocal cluster network 612 a. Similarly, computing cluster 609 b caninclude one or more computing devices 600 b, cluster storage arrays 610b, and cluster routers 611 b connected by a local cluster network 612 b.Likewise, computing cluster 609 c can include one or more computingdevices 600 c, cluster storage arrays 610 c, and cluster routers 611 cconnected by a local cluster network 612 c.

In some embodiments, each of the computing clusters 609 a, 609 b, and609 c can have an equal number of computing devices, an equal number ofcluster storage arrays, and an equal number of cluster routers. In otherembodiments, however, each computing cluster can have different numbersof computing devices, different numbers of cluster storage arrays, anddifferent numbers of cluster routers. The number of computing devices,cluster storage arrays, and cluster routers in each computing clustercan depend on the computing task or tasks assigned to each computingcluster.

In computing cluster 609 a, for example, computing devices 600 a can beconfigured to perform various computing tasks of a robot, safety-systemserver, robotic device, special robot, and/or robotic actor. In oneembodiment, the various functionalities of a robot, safety-systemserver, robotic device, special robot, and/or robotic actor can bedistributed among one or more computing devices 600 a, 600 b, and 600 c.Computing devices 600 b and 600 c in respective computing clusters 609 band 609 c can be configured similarly to computing devices 600 a incomputing cluster 609 a. On the other hand, in some embodiments,computing devices 600 a, 600 b, and 600 c can be configured to performdifferent functions.

In some embodiments, computing tasks and stored data associated with arobot, safety-system server, robotic device, special robot, and/orrobotic actor can be distributed across computing devices 600 a, 600 b,and 600 c based at least in part on the processing requirements of arobot, safety-system server, robotic device, special robot, and/orrobotic actor, the processing capabilities of computing devices 600 a,600 b, and 600 c, the latency of the network links between the computingdevices in each computing cluster and between the computing clustersthemselves, and/or other factors that can contribute to the cost, speed,fault-tolerance, resiliency, efficiency, and/or other design goals ofthe overall system architecture.

The cluster storage arrays 610 a, 610 b, and 610 c of the computingclusters 609 a, 609 b, and 609 c can be data storage arrays that includedisk array controllers configured to manage read and write access togroups of hard disk drives. The disk array controllers, alone or inconjunction with their respective computing devices, can also beconfigured to manage backup or redundant copies of the data stored inthe cluster storage arrays to protect against disk drive or othercluster storage array failures and/or network failures that prevent oneor more computing devices from accessing one or more cluster storagearrays.

Similar to the manner in which the functions of a robot, safety-systemserver, robotic device, special robot, and/or robotic actor can bedistributed across computing devices 600 a, 600 b, and 600 c ofcomputing clusters 609 a, 609 b, and 609 c, various active portionsand/or backup portions of these components can be distributed acrosscluster storage arrays 610 a, 610 b, and 610 c. For example, somecluster storage arrays can be configured to store one portion of thedata of a robot, safety-system server, robotic device, special robot,and/or robotic actor, while other cluster storage arrays can store otherportion(s) of data of a robot, safety-system server, robotic device,special robot, and/or robotic actor. Additionally, some cluster storagearrays can be configured to store backup versions of data stored inother cluster storage arrays.

The cluster routers 611 a, 611 b, and 611 c in computing clusters 609 a,609 b, and 609 c can include networking equipment configured to provideinternal and external communications for the computing clusters. Forexample, the cluster routers 611 a in computing cluster 609 a caninclude one or more internet switching and routing devices configured toprovide (i) local area network communications between the computingdevices 600 a and the cluster storage arrays 610 a via the local clusternetwork 612 a, and (ii) wide area network communications between thecomputing cluster 609 a and the computing clusters 609 b and 609 c viathe wide area network connection 613 a to network 614. Cluster routers611 b and 611 c can include network equipment similar to the clusterrouters 611 a, and cluster routers 611 b and 611 c can perform similarnetworking functions for computing clusters 609 b and 609 b that clusterrouters 611 a perform for computing cluster 609 a.

In some embodiments, the configuration of the cluster routers 611 a, 611b, and 611 c can be based at least in part on the data communicationrequirements of the computing devices and cluster storage arrays, thedata communications capabilities of the network equipment in the clusterrouters 611 a, 611 b, and 611 c, the latency and throughput of localnetworks 612 a, 612 b, 612 c, the latency, throughput, and cost of widearea network links 613 a, 613 b, and 613 c, and/or other factors thatcan contribute to the cost, speed, fault-tolerance, resiliency,efficiency and/or other design goals of the moderation systemarchitecture.

Example Methods of Operation

FIG. 7 is a flowchart of method 700, in accordance with an exampleembodiment. Method 700 can be executed on a computing device. Examplecomputing devices include, but are not limited to, computing device 600,a safety-system server such as safety-system server 180, a computingdevice aboard a herein-described robot, robotic actor, robotic device,special robot, and/or other computing device(s). In some embodiments,the computing device can be part of a safety system, such as discussedabove in the context of at least FIG. 1.

Method 700 can begin at block 710, where the computing device candetermine presence information and actor type information about anyactors present within a predetermined area of an environment using oneor more sensors, such as discussed above regarding as least FIGS. 1-4.

In some embodiments, the one or more sensors can include two or moresensors for determining the presence information, such as discussedabove regarding at least FIG. 1. In other embodiments, where the one ormore sensors include two or more sensors for determining the actor typeinformation, such as discussed above regarding at least FIG. 1. In evenother embodiments, a size of the predetermined area can be based on arange of the one or more sensors, such as discussed above regarding atleast FIG. 1.

In other embodiments, such as embodiments where the computing device ispart of a safety system, the safety system can also include the one ormore sensors; and the one or more sensors can be distributed throughoutthe environment, such as discussed above regarding at least FIG. 1. Inparticular of these embodiments, the environment can be divided into aplurality of areas that comprise the predetermined area. Then, the oneor more sensors can include a first sensor having a first range and asecond sensor having a second range. Additionally, a first area of theplurality of areas can be associated with the first sensor and can havea size that is based on the first range, and the predetermined area canbe associated with the second sensor and can have a size that is basedon the second range, such as discussed above regarding at least FIG. 1.

In still other embodiments, the one or more sensors can include an RFIDsensor configured to provide at least part of the actor typeinformation, such as discussed above regarding at least FIG. 1. Inparticular of these embodiments, each of the one or more actors can beprovided with an RFID device then, the RFID sensor can be configured toobtain at least part of the actor type information from the RFID device,such as discussed above regarding at least FIG. 1.

In even other embodiments, the one or more sensors can include a sensorconfigured to detect one or more patterns of light, such as discussedabove regarding at least FIG. 1. Then, at least one actor of the one ormore actors can be provided with a light source configured to emit apattern of light, where the pattern of light conveys at least part ofthe actor type information, such as discussed above regarding at leastFIG. 1.

In yet other embodiments, the one or more sensors can include a sensorconfigured to detect one or more patterns of sound, such as discussedabove regarding at least FIG. 1. Then, at least one actor of the one ormore actors can be provided with a sound generator configured to emitone or more sounds, where the one or more sounds convey at least part ofthe actor type information, such as discussed above regarding at leastFIG. 1.

At block 720, the computing device can determine a particular safetyclassification of the predetermined area based on the presence and actortype information using the computing device. The particular safetyclassification can include: a low safety classification if the presenceand actor type information indicates zero actors are present within thepredetermined area, a medium safety classification if the presence andactor type information indicates one or more actors are present withinthe predetermined area and that all of the one or more actors are of apredetermined first type, and a high safety classification if thepresence and actor type information indicates one or more actors arepresent within the predetermined area and that at least one actor of theone or more actors is of a predetermined second type, such as discussedabove regarding at least FIGS. 2-3H.

At block 730, the computing device can, after determining the particularsafety classification for the predetermined area, provide a safety rulefor operating within the predetermined area to a robotic deviceoperating in the environment, where the safety rule can correspond tothe particular safety classification, such as discussed above regardingat least FIGS. 1-4.

In some embodiments, the safety rule can include: a low safety rulecorresponding to the low safety classification, a medium safety rulecorresponding to the medium safety classification, and a high safetyrule corresponding to the high safety classification, such as discussedabove regarding at least FIGS. 1-4. In other embodiments, the low safetyrule can relate to fewer safety-related provisions of the robotic devicethan the medium safety rule, and the medium safety rule can relate tofewer safety-related provisions of the robotic device than the highsafety rule, such as discussed above regarding at least FIGS. 1-5B. Instill other embodiments, the robotic device includes a local safetysystem. Then, at least one of the low safety rule, the medium safetyrule, and the high safety rule include a rule related to the localsafety system, such as discussed above regarding at least FIG. 1. Ineven other embodiments, at least one of the low safety rule, the mediumsafety rule, and the high safety rule include a rule related to amaximum speed of the robotic device, such as discussed above regardingat least FIG. 1.

In yet other embodiments, the environment can be divided into aplurality of areas that include the predetermined area. Then, the safetyrule for operating within the predetermined area can include a safetyrule for operating in multiple areas of the plurality of areas, andwherein the multiple areas comprise the predetermined area, such asdiscussed above regarding at least FIG. 1. In particular of theseembodiments, the one or more sensors can include a first sensor having afirst range and a second sensor having a second range. Then, a firstarea of the plurality of areas can be associated with the first sensorand can have a size that is based on the first range. Also, thepredetermined area can be associated with the second sensor and can havea size that is based on the second range, such as discussed aboveregarding at least FIG. 1.

In yet even other embodiments, the type of the actor can be selectedfrom at least the first type, the second type, and a third type, andwhere the third type can differ from both the first type and the secondtype, such as discussed above regarding at least FIGS. 3A-3H. Inparticular of these embodiments, the first type can relate to a roboticactor, where the second type can relate to a human actor, and the thirdtype can relate to an unknown type of actor, such as discussed aboveregarding at least FIGS. 3A-3H. In more particular embodiments, method700 can further include: after determining that the type of the actor isthe unknown type, the computing device providing an emergency safetyrule to stop the robotic device, such as discussed above regarding atleast FIGS. 3C-3E.

In still other embodiments, the environment is divided into a pluralityof areas that include the predetermined area. Then, determining thepresence information and the actor type information within thepredetermined area of the environment can include: receiving globalinformation about the plurality of areas, where the global informationincludes presence information and the actor type information within thepredetermined area of the environment. In these embodiments, method 700can further include dynamically changing safety classifications for atleast one area of the plurality of areas within the environment based onthe global information.

The present disclosure is not to be limited in terms of the particularembodiments described in this application, which are intended asillustrations of various aspects. Many modifications and variations canbe made without departing from its spirit and scope, as will be apparentto those skilled in the art. Functionally equivalent methods andapparatuses within the scope of the disclosure, in addition to thoseenumerated herein, will be apparent to those skilled in the art from theforegoing descriptions. Such modifications and variations are intendedto fall within the scope of the appended claims.

The above detailed description describes various features and functionsof the disclosed systems, devices, and methods with reference to theaccompanying figures. In the figures, similar symbols typically identifysimilar components, unless context dictates otherwise. The illustrativeembodiments described in the detailed description, figures, and claimsare not meant to be limiting. Other embodiments can be utilized, andother changes can be made, without departing from the spirit or scope ofthe subject matter presented herein. It will be readily understood thatthe aspects of the present disclosure, as generally described herein,and illustrated in the figures, can be arranged, substituted, combined,separated, and designed in a wide variety of different configurations,all of which are explicitly contemplated herein.

With respect to any or all of the ladder diagrams, scenarios, and flowcharts in the figures and as discussed herein, each block and/orcommunication may represent a processing of information and/or atransmission of information in accordance with example embodiments.Alternative embodiments are included within the scope of these exampleembodiments. In these alternative embodiments, for example, functionsdescribed as blocks, transmissions, communications, requests, responses,and/or messages may be executed out of order from that shown ordiscussed, including substantially concurrent or in reverse order,depending on the functionality involved. Further, more or fewer blocksand/or functions may be used with any of the ladder diagrams, scenarios,and flow charts discussed herein, and these ladder diagrams, scenarios,and flow charts may be combined with one another, in part or in whole.

A block that represents a processing of information may correspond tocircuitry that can be configured to perform the specific logicalfunctions of a herein-described method or technique. Alternatively oradditionally, a block that represents a processing of information maycorrespond to a module, a segment, or a portion of program code(including related data). The program code may include one or moreinstructions executable by a processor for implementing specific logicalfunctions or actions in the method or technique. The program code and/orrelated data may be stored on any type of computer readable medium suchas a storage device including a disk or hard drive or other storagemedium.

The computer readable medium may also include non-transitory computerreadable media such as non-transitory computer-readable media thatstores data for short periods of time like register memory, processorcache, and random access memory (RAM). The computer readable media mayalso include non-transitory computer readable media that stores programcode and/or data for longer periods of time, such as secondary orpersistent long term storage, like read only memory (ROM), optical ormagnetic disks, compact-disc read only memory (CD-ROM), for example. Thecomputer readable media may also be any other volatile or non-volatilestorage systems. A computer readable medium may be considered a computerreadable storage medium, for example, or a tangible storage device.

Moreover, a block that represents one or more information transmissionsmay correspond to information transmissions between software and/orhardware modules in the same physical device. However, other informationtransmissions may be between software modules and/or hardware modules indifferent physical devices.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for providedfor explanatory purposes and are not intended to be limiting, with thetrue scope being indicated by the following claims.

What is claimed is:
 1. A method implemented by one or more processors,the method comprising: determining, based on sensor data from one ormore sensors in an environment, a safety classification of an area ofthe environment; in response to determining the safety classification isa first classification: causing a robot, operating in the area of theenvironment, to utilize a first resolution sensor of the robot withoututilization of a second resolution sensor of the robot, wherein thesecond resolution sensor is more accurate than the first resolutionsensor; in response to determining the safety classification is a secondclassification: causing the robot, operating in the area of theenvironment, to utilize at least the second resolution sensor of therobot.
 2. The method of claim 1, wherein causing the robot to utilize atleast the second resolution sensor of the robot comprises: causing therobot to utilize the first resolution sensor of the robot and to utilizethe second resolution sensor of the robot.
 3. The method of claim 1,wherein the first resolution sensor and the second resolution sensor areeach location sensors.
 4. The method of claim 1, further comprising: inresponse to determining the safety classification is a thirdclassification: causing the robot, operating in the area of theenvironment, to utilize at least a third resolution sensor of the robot,wherein the third resolution sensor of the robot is more accurate thanthe second resolution sensor and is not utilized in response todetermining the safety classification is the first classification and isnot utilized in response to determining the safety classification is thesecond classification.
 5. The method of claim 4, wherein causing therobot, operating in the area of the environment, to utilize at least thethird resolution sensor of the robot, comprises: causing the robot toutilize the first resolution sensor, the second resolution sensor, andthe third resolution sensor of the robot.
 6. The method of claim 4,wherein the first safety classification is a low classification, thesecond classification is a medium classification, and the third safetyclassification is a high classification.
 7. The method of claim 1,wherein determining, based on the sensor data from the one or moresensors in the environment, the safety classification of the area of theenvironment, comprises: determining, based on the sensor data, an actortype of an actor in the area of the environment; and determining thesafety classification based on the actor type of the actor in the areaof the environment.
 8. A method implemented by one or more processors,the method comprising: determining, based on sensor data from one ormore sensors of a robot: an actor location of an actor in an environmentof the robot, an actor type of the actor in the environment, and atrajectory of the actor in the environment; determining, based on theactor type, the trajectory, and the actor location: a speed for therobot in an area of the environment; and causing the robot to operate atthe speed in the area of the environment.
 9. The method of claim 8,wherein determining the actor type comprises selecting the actor typefrom a group that includes at least a human actor type and a robot actortype.
 10. The method of claim 9, wherein the sensor data comprises animage and wherein the one or more sensors comprise a camera thatgenerated the image.
 11. The method of claim 9, wherein when thelocation is a first location, the trajectory is a first trajectory, andthe actor type is the human actor type, the speed is a first speed; andwherein when the location is the first location, the trajectory is thefirst trajectory, and the actor type is the robot actor type, the speedis a second speed that is greater than the first speed.
 12. The methodof claim 8, wherein determining, based on the actor type, thetrajectory, and the actor location, the speed for the robot in the areaof the environment, comprises: determining, based on the trajectory,whether the area is in the direction of travel of the actor; anddetermining the speed, for the robot in the area, based on whether thearea is in the direction of travel of the actor and based on the actortype and the actor location.
 13. The method of claim 12, wherein whenthe location is a first location, the area is in the direction of travelof the actor, and the actor type is a first actor type, the speed is afirst speed; and wherein when the location is the first location, thearea is opposite the direction of travel of the actor, and the actortype is the first actor type, the speed is a second speed that is lessthan the first speed.
 14. The method of claim 8, wherein causing therobot to operate at the speed in the area of the environment comprises:updating a safety gradient map, that includes the area and additionalareas in the environment, to specify the speed for the area; and causingthe robot to access the safety gradient map and determine the speed forthe area based on its specification in the safety gradient map.
 15. Themethod of claim 8, wherein the actor is a robot and wherein determiningthe actor type comprises: determining whether the robot is a first typeof robot or a second type of robot.
 16. The method of claim 15, whereindetermining whether the robot is the first type of robot or the secondtype of robot comprises: determining whether the robot is the first typeor the second type in dependence on a task being performed by the robot.17. The method of claim 16, wherein the robot is determined to be thefirst type when the task is a dangerous task.
 18. A safety system,comprising: one or more sensors in an environment; one or moreprocessors; and data storage including at least computer-executableinstructions stored thereon that, when executed by the one or moreprocessors, cause the one or more processors to: determine, based onsensor data from the one or more sensors: an actor location of an actorin the environment, an actor type of the actor in the environment, and atrajectory of the actor in the environment; determine, based on theactor type, the trajectory, and the actor location: a speed for a robotin an area of the environment; and cause the robot to operate at thespeed in the area of the environment.
 19. The safety system of claim 18,wherein in determining the actor type one or more of the processors areto select the actor type from a group that includes at least a humanactor type and a robot actor type.
 20. The system of claim 19, whereinwhen the location is a first location, the trajectory is a firsttrajectory, and the actor type is the human actor type, the speed is afirst speed; and wherein when the location is the first location, thetrajectory is the first trajectory, and the actor type is the robotactor type, the speed is a second speed that is greater than the firstspeed.